home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C++ / Applications / PICSee Dust 1.01 / Preferences source / PICS_MarqueePane.cpp < prev    next >
C/C++ Source or Header  |  1995-11-16  |  4KB  |  143 lines

  1. #include "PICS_PreferencesPanes.h"
  2. #include <ColorPicker.h>
  3.  
  4. enum {
  5.     // Marquee color pane
  6.     kMarqueePane_HiliteColorRadio = kPrefsDlog_LastItem,
  7.     kMarqueePane_BlackColorRadio,
  8.     kMarqueePane_CustomColorRadio,
  9.     
  10.     kMarqueePane_HiliteColorBox,
  11.     kMarqueePane_BlackColorBox,
  12.     kMarqueePane_CustomColorBox,
  13.     
  14.     kMarqueePane_LineSeparator,
  15.     kMarqueePane_Box
  16. };
  17.  
  18. // ---------------------------------------------------------------------------
  19.  
  20. void PrefsDialogSetupMarqueePane(DialogPtr prefsDlog) {
  21.     switch((**sPrefsData->prefs).marqueeColor) {
  22.         case kMarqueeUseHiliteColor:
  23.             SelectRadioBtn(prefsDlog, kMarqueePane_HiliteColorRadio,
  24.                 kMarqueePane_HiliteColorRadio,
  25.                 kMarqueePane_CustomColorRadio);
  26.         break;
  27.         
  28.         case kMarqueeUseBlackColor:
  29.             SelectRadioBtn(prefsDlog, kMarqueePane_BlackColorRadio,
  30.                 kMarqueePane_HiliteColorRadio,
  31.                 kMarqueePane_CustomColorRadio);
  32.         break;
  33.         
  34.         case kMarqueeUseCustomColor:
  35.             SelectRadioBtn(prefsDlog, kMarqueePane_CustomColorRadio,
  36.                 kMarqueePane_HiliteColorRadio,
  37.                 kMarqueePane_CustomColorRadio);
  38.         break;
  39.     }
  40.     Rect customColorBox;
  41.     GetDItemRect(prefsDlog, kMarqueePane_CustomColorBox, &customColorBox);
  42.     InvalRect(&customColorBox);
  43. } // END PrefsDialogSetupMarqueePane
  44.  
  45. // ---------------------------------------------------------------------------
  46.  
  47. Boolean PrefsDialogGetMarqueePaneSettings(DialogPtr prefsDlog) {
  48.     short itemHit;
  49.     
  50.     itemHit = GetRadioBtn(prefsDlog, kMarqueePane_HiliteColorRadio,
  51.         kMarqueePane_CustomColorRadio) - kMarqueePane_HiliteColorRadio;
  52.  
  53.     (**sPrefsData->prefs).marqueeColor = itemHit;
  54.     
  55.     return(true);
  56. } // END PrefsDialogSetupMarqueePane
  57.  
  58. // ---------------------------------------------------------------------------
  59.  
  60. void PrefsDialogMarqueePaneHit(DialogPtr prefsDlog, short itemHit) {
  61.     switch(itemHit) {
  62.         case kMarqueePane_HiliteColorRadio:
  63.         case kMarqueePane_BlackColorRadio:
  64.         case kMarqueePane_CustomColorRadio:
  65.             SelectRadioBtn(prefsDlog, itemHit,
  66.                 kMarqueePane_HiliteColorRadio, kMarqueePane_CustomColorRadio);
  67.         break;
  68.         
  69.         case kMarqueePane_CustomColorBox:
  70.             Point where = { -1, -1 };
  71.             RGBColor theColor = (**sPrefsData->prefs).customRGBColor;
  72.  
  73.             if (GetColor(where, "\pPick a marquee color",
  74.                 &theColor, &theColor)) {
  75.  
  76.                 (**sPrefsData->prefs).customRGBColor = theColor;
  77.                 SelectRadioBtn(prefsDlog,
  78.                     kMarqueePane_CustomColorRadio,
  79.                     kMarqueePane_HiliteColorRadio,
  80.                     kMarqueePane_CustomColorRadio);
  81.             }
  82.         break;
  83.     }
  84. } // END PrefsDialogSetupMarqueePane
  85.  
  86. // ---------------------------------------------------------------------------
  87.  
  88. void PrefsDialogMarqueePaneUpdate(
  89.     DialogPtr prefsDlog,
  90.     EventRecord *theEvt,
  91.     Boolean frontMost) {
  92.  
  93.     Rect lineRect;
  94.     
  95.     GetDItemRect(prefsDlog, kMarqueePane_Box, &lineRect);
  96.     GrayDrawShadowBox(&lineRect, NULL);
  97.     
  98.     GetDItemRect(prefsDlog, kMarqueePane_LineSeparator, &lineRect);
  99.     GrayDrawShadowLine(&lineRect, NULL);
  100.  
  101.     Rect colorBox;
  102.     RGBColor fillColor;
  103.     RGBColor saveFore;
  104.  
  105.     GetForeColor(&saveFore);
  106.  
  107.     // Draw hilite color box
  108.     GetDItemRect(prefsDlog, kMarqueePane_HiliteColorBox, &colorBox);
  109.     LMGetHiliteRGB(&fillColor);
  110.     RGBForeColor(&fillColor);
  111.     PaintRect(&colorBox);
  112.  
  113.     // Draw black color box
  114.     GetDItemRect(prefsDlog, kMarqueePane_BlackColorBox, &colorBox);
  115.     fillColor.red = fillColor.green = fillColor.blue = 0;
  116.     RGBForeColor(&fillColor);
  117.     PaintRect(&colorBox);
  118.  
  119.     // Draw custom color box
  120.     GetDItemRect(prefsDlog, kMarqueePane_CustomColorBox, &colorBox);
  121.     fillColor = (**sPrefsData->prefs).customRGBColor;
  122.     RGBForeColor(&fillColor);
  123.     PaintRect(&colorBox);
  124.     
  125.     RGBForeColor(&saveFore);
  126.     for (short i = kMarqueePane_HiliteColorBox;
  127.         i <= kMarqueePane_CustomColorBox; i++) {
  128.         GetDItemRect(prefsDlog, i, &colorBox);
  129.         FrameRect(&colorBox);
  130.     }
  131. } // END PrefsDialogMarqueePaneUpdate
  132.  
  133. // ---------------------------------------------------------------------------
  134.  
  135. void PrefsDialogMarqueePaneActivate(DialogPtr prefsDlog, Boolean activate) {
  136.     short hiliteMode = activate ? 0 : 255;
  137.     
  138.     for (short i = kMarqueePane_HiliteColorRadio;
  139.         i <= kMarqueePane_CustomColorRadio; i++) {
  140.         HiliteControl((ControlHandle)GetDItemHdl(prefsDlog, i), hiliteMode);
  141.     }
  142. } // END PrefsDialogMarqueePaneActivate
  143.